package com.ywu.bpmn.form.service.data;

import com.ywu.bpmn.form.service.dto.YwuFormDefinitionVersionDto;
import com.ywu.bpmn.form.service.dto.YwuFormInterfaceDto;
import com.ywu.bpmn.form.service.dto.YwuFormInterfaceVersionDto;
import com.ywu.bpmn.form.service.entity.YwuFormInterfaceEntity;
import com.ywu.bpmn.form.service.entity.YwuFormInterfaceVersionEntity;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

@Mapper
public interface YwuFormInterfaceRepository {
    void insert(@Param("model") YwuFormInterfaceEntity entity);

    void update(@Param("model") YwuFormInterfaceEntity entity);

    void delete(@Param("model") YwuFormInterfaceEntity entity);

    void deleteByFormId(@Param("model") YwuFormInterfaceEntity entity);

    YwuFormInterfaceEntity getEntity(@Param("model") YwuFormInterfaceEntity entity);

    int queryCount(@Param("model") YwuFormInterfaceDto dto);

    List<YwuFormInterfaceEntity> queryPageList(@Param("model") YwuFormInterfaceDto dto);

    void insertVersion(@Param("model") YwuFormInterfaceVersionEntity entity);

    void updateVersionByVersion(@Param("model") YwuFormInterfaceVersionEntity entity);

    void updateVersionById(@Param("model") YwuFormInterfaceVersionEntity entity);

    void deleteVersionByVersion(@Param("model") YwuFormInterfaceVersionEntity entity);

    YwuFormInterfaceVersionEntity getVersionEntity(@Param("model") YwuFormInterfaceVersionEntity entity);

    List<YwuFormInterfaceVersionEntity> queryVersionList(@Param("model") YwuFormInterfaceVersionDto dto);

    List<YwuFormInterfaceVersionEntity> queryDraftVersionList(@Param("list") List<String> ids);
}
